#define _CRT_SECURE_NO_WARNINGS

//#include<iostream>
//
//using namespace std;
//
//int gcd(int a, int b)
//{
//    if (a < b) swap(a, b);
//
//    while (b != 0)
//    {
//        int c = a % b;
//        a = b;
//        b = c;
//    }
//    return a;
//}
//
//int lcm(int a, int b)
//{
//    return (a * b) / gcd(a, b);
//}
//int main()
//{
//    int a, b;
//    cin >> a >> b;
//    cout << lcm(a, b) << '\n';
//
//    return 0;
//}


//#include <iostream>
//#include<vector>
//using namespace std;
//
//int main()
//{
//    int n, m;
//    cin >> n >> m;
//    vector<vector<char>> p(n, vector<char>(m));
//    vector<vector<int>> ret(n, vector<int>(m));
//    vector<vector<int>> dp(n + 1, vector<int>(m + 1));
//
//    for (int i = 0; i < n; i++)
//    {
//        for (int j = 0; j < m; j++)
//        {
//            cin >> p[i][j];
//            if (p[i][j] == 'l') ret[i][j] = 4;
//            else if (p[i][j] == 'o') ret[i][j] = 3;
//            else if (p[i][j] == 'v') ret[i][j] = 2;
//            else if (p[i][j] == 'e') ret[i][j] = 1;
//            else ret[i][j] = 0;
//        }
//    }
//
//    for (int i = 1; i <= n; i++)
//    {
//        for (int j = 1; j <= m; j++)
//        {
//            dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]) + ret[i-1][j-1];
//        }
//    }
//
//    cout << dp[n][m] << '\n';
//
//    return 0;
//}


#include <iostream>
#include<vector>
#include<set>
using namespace std;

int main()
{
    vector<int> ret;
    ret.push_back(100);
    ret.push_back(4);
    ret.push_back(200);
    ret.push_back(4);
    ret.push_back(3);
    ret.push_back(2);

    int count = 1;
    int n = ret.size();
    set<int> hash(ret.begin(), ret.end());
    vector<int> k(hash.begin(), hash.end());

    int p = k.size();
    for (int i = 0; i < n; i++)
    {
        cout << k[i] << " ";
    }


	return 0;
}